xlsx.utils.sheet

您所在的位置:网站首页 json header xlsx.utils.sheet

xlsx.utils.sheet

2024-07-13 21:17| 来源: 网络整理| 查看: 265

XLSX.utils.sheet_to_json 是为了把excel里面的数据解析出来,这是它的定义: 其中,worksheet表示特定表名的工作表,opts属于可要可不要的参数。

opts也有几种类型:

export interface Sheet2JSONOpts extends DateNFOption { /** Output format */ header?: "A"|number|string[]; /** Override worksheet range */ range?: any; /** Include or omit blank lines in the output */ blankrows?: boolean; /** Default value for null/undefined values */ defval?: any; /** if true, return raw data; if false, return formatted text */ raw?: boolean; /** if true, skip hidden rows and columns */ skipHidden?: boolean; /** if true, return raw numbers; if false, return formatted numbers */ rawNumbers?: boolean; }

其中,header表示控制输出的类型,range表示跳过的行,defavl表示默认值,为null和undefine时,会默认跳过。

对于header,也有几种类型 在这里插入图片描述

下面直接上例子: 这是我的excel数据: 在这里插入图片描述

这是代码1: const outdata = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: 1 }) console.log(outdata) 这是输出的结果1: [ [ 's', 'h', 'e', 't' ], [ 1, , 2, 3 ], [ '测试1', '测试2', '测试3' ] ] 这是代码2: const outdata = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: 2 }) console.log(outdata) 这是输出的结果2: [ { s: 1, e: 2, t: 3 }, { s: '测试1', h: '测试2', e: '测试3' } ] 这是代码3: const outdata = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: 8 }) console.log(outdata) 这是输出的结果3: [ { s: 1, e: 2, t: 3 }, { s: '测试1', h: '测试2', e: '测试3' } ]

可以看出, ①当header 为1时,输出为一个二维数组,输出了所有数据,包含了空值项,但每行末尾空值不显示。 ②当header不为1时,输出一个包含字符串的数组,不包含空值项,直接跳过空值。同时是一个以第一行为Key值的键值对。

这是代码4: const outdata = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: 'A' }) console.log(outdata) 这是输出的结果4: [ { A: 's', B: 'h', C: 'e', D: 't' }, { A: 1, C: 2, D: 3 }, { A: '测试1', B: '测试2', C: '测试3' } ]

可以看出,当参数为“A”时,是一个以excel的ABCDE等为key值的键值对,默认也不显示空值。

这是代码5: const outdata=XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: ["A","C",1,3] }) console.log(outdata) 这是输出的结果5: [ { '1': 'e', '3': 't', A: 's', C: 'h' }, { '1': 2, '3': 3, A: 1 }, { '1': '测试3', A: '测试1', C: '测试2' } ] 这是代码6: const outdata=XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header:["A","C",1,3,6,"N"] }) console.log(outdata) 这是输出的结果6: [ { '1': 'e', '3': 't', A: 's', C: 'h' }, { '1': 2, '3': 3, A: 1 }, { '1': '测试3', A: '测试1', C: '测试2' } ]

可以看出,当参数是字符数组时,输出是以字符数组的字符为key值得键值对。 同时有这些特性: ①每个字符的序号与excel原始数据对应,我的excel只有四列数据,这里无论你的字符数组有多长,也只会取前四个。 ②不同字符,以阿拉伯数字从小到大优先排列,后面字母从A到Z排列。

一般情况我们都使用,{ header: 1 },只有这个会生成二维数组,输出每一行数据,并且不是键值对!

具体详情可见我参考的文档



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3